/**
 * 
 */

package com.shy.portal.service;

import java.util.List;

import com.shy.base.service.BaseService;
import com.shy.portal.entity.Menu;
import com.shy.portal.entity.Permission;
import com.shy.portal.entity.Role;
import com.shy.portal.entity.User;

/**
 * <p>
 * Title: IManagerService
 * </p>
 * <p>
 * Description:
 * </p>
 * <p>
 * Company:
 * </p>
 * 
 * @author H2013788
 */
public interface UserService extends BaseService<User> {

    /**
     * 根據用户名查询用户信息
     * 
     * @param username
     *            用户名
     * @return user實体
     * @author H2013788
     * @date 2017/9/27下午2:45:55
     */
    public User getUserByName(String username);

    /**
     * 查询当前用户具有的角色列表
     * 
     * @param userId
     *            用户id
     * @return 角色列表
     * @author H2013788
     * @date 2017年9月27日上午10:05:05
     */
    public List<Role> listRoleByUserId(Integer userId);

    /**
     * 查询当前用户具有的权限列表
     * 
     * @param userId
     *            用户ID
     * @return 权限列表
     * @author H2013788
     * @date 2017年9月27日上午10:05:47
     */
    public List<Permission> listPermissionByUserId(Integer userId);

    /**
     * 查询当前用户具有的菜单列表
     * 
     * @param userId
     *            用户id
     * @return 菜单列表
     * @author H2013788
     * @date 2017/11/16下午2:18:57
     */
    public List<Menu> listMenuByUserId(Integer userId);

    /**
     * @param param
     *            用户参数實体
     * @return 用户實体
     * @author F5400164
     * @date 2017/12/7下午2:18:57
     */
    public List<User> listUserByParam(User param);

}
